cmake_minimum_required(VERSION 3.16)
project(main CXX)

# 1、搜索文件GLOB匹配
file(GLOB SRC ${PROJECT_SOURCE_DIR}/src/*.cpp)
# 2、设置h文件搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include)
# 3、指定lib导出目录
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/static_lb)
# 4、STATIC生成静态库： 
add_library(animal_STATIC STATIC ${SRC})
# 5、SHARED生成动态库
add_library(animal_SHARED SHARED ${SRC})

# 一、动态库
# 1.linux上是.so、windows上是dll
# 2.动态库不是在编译时被链接到目标代码中，而是在运行时才被载入
# 二、静态库
# 1.linux上是.a、windows上是lib
# 在链接阶段，会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。对函数库的链接是在编译时完成的